package com.zlp.quartz.first;

import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;

import java.util.concurrent.TimeUnit;

/**
 * @Author: zhulaiping
 * @Date: 2021/10/17 9:29
 */
public class QuartzDataTest {

    /*
     * 验证jopDataMap取值，同名trigger不会覆盖jobDetail的值，但如果获取合并map会被覆盖
     * 获取参数的方式，1从map中获取，2,是给job设置参数，并提供set方法，会把map中的同名key设置进去
     * */
    public static void main(String[] args) {

        try {
            //创建调度器
            Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
            scheduler.start();
            //创建job：name用来标记任务的，group用来标记任务和方便管理的
            JobDetail job = JobBuilder.newJob(HelloDataJob.class)
                    .usingJobData("key","job")
                    .withIdentity("job", "group1")//此处不设置group，会给一个默认的group
                    .build();
            //创建触发器
            Trigger trigger = TriggerBuilder.newTrigger()
                    .usingJobData("key","trigger")
                    .withIdentity("trigger", "group1")
                    .startNow()
                    .withSchedule(
                            CronScheduleBuilder.cronSchedule("* * * * * ? *"))//每秒执行一次
                    .build();


            //4.调度
            scheduler.scheduleJob(job,trigger);

            TimeUnit.SECONDS.sleep(1);
            scheduler.shutdown();
        } catch (SchedulerException | InterruptedException e) {
            e.printStackTrace();
        }
    }
}
